package com.kujie.access.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kujie.access.domain.po.CustomerManagement;
import com.kujie.access.domain.query.CustomerQuery;
import com.kujie.access.domain.vo.CustomerManagementVO;
import com.kujie.common.mybatis.core.page.PageQuery;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * 客户管理 api
 *
 * @author ck
 * @date 2025-05-26
 */
public interface ICustomerManagementService {
    /**
     * 查询客户管理列表
     *
     * @param customerQuery 客户管理信息
     * @param pageQuery 分页条件
     * @return 客户管理列表信息
     */
    Page<CustomerManagementVO> list(CustomerQuery customerQuery, PageQuery pageQuery);

    /**
     * 插入或更新客户管理信息
     *
     * @param customerManagement 客户管理信息
     */
    boolean insertOrUpdate(CustomerManagement customerManagement);

    /**
     * 批量删除客户数据
     *
     * @param ids 客户数据主键id
     */
    int batchDelete(List<Long> ids);

    /**
     * 导出客户信息
     *
     * @param customerQuery 客户信息
     * @param response 响应
     * @return 客户信息集合
     */
    List<CustomerManagementVO> batchExport(CustomerQuery customerQuery, HttpServletResponse response);

    /**
     * 导入客户信息
     * @param file 文件
     */
    int batchImport(MultipartFile file) throws IOException;

    /**
     * 获取客户详情
     *
     * @param id 主键id
     * @return 客户信息
     */
    CustomerManagementVO detail(Long id);
}
